#include "Servo.h"     

void Servo_Init(void)
{
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
	
	GPIO_InitTypeDef GPIO_InitStructure;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOA, &GPIO_InitStructure);
	
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOC, &GPIO_InitStructure);
	
	x_on;y_on;z_on;
}

void Motor(int x,int y,int z) 
{
    int i;

    if(x!=0)
    {
				if(x<0)dir_x_negative;
				else if(x>0)dir_x_positive;
        for(i=0;i<abs(x);i++)
        {
            step_x_on;
            Delay_us(delay_time);
            step_x_off;
            Delay_us(delay_time);
        }
    }    

    if(y!=0)
    {
				if(y<0)dir_y_negative;
				else if(y>0)dir_y_positive;
        for(i=0;i<abs(y);i++)
        {
            step_y_on;
            Delay_us(delay_time);
            step_y_off;
            Delay_us(delay_time);
        }
    }

    if(z!=0)
    {
				if(z<0)dir_z_negative;
				else if(z>0)dir_z_positive;
        for(i=0;i<abs(z);i++)
        {
            step_z_on;
            Delay_us(delay_time);
            step_z_off;
            Delay_us(delay_time);
        }
    }  
}

